import java.util.Scanner;
import java.util.Stack;

/**
 * 题目描述
 * 在餐厅里，洗盘子的工作需要使用到栈这种数据结构。
 *
 * 假设你手里有一个盘子堆放区。现在需要模拟洗盘子的过程，每个盘子都有一个编号。
 *
 * 盘子堆放区操作说明：
 *
 * 1. 当操作为 1 时，表示从盘子堆放区拿走顶部的盘子清洗。
 * 2. 当操作为 2 时，表示有未洗的盘子放入盘子堆放区。
 *
 * 在一系列操作之后，你需要回答：下一个清洗的盘子编号？
 *
 * 输入描述
 * 第一行有一个整数 n，代表初始盘子堆放区中盘子的数量为 n。
 *
 * 第二行有 n 个整数，代表了盘子的编号，同时整数之间的顺序也代表了未洗盘子加入盘子堆放区的顺序。
 *
 * 第三行为一个整数 m，代表接下来将会有 m 次操作。
 *
 * 接下来一共有 m 行，代表共有 m 次操作。
 *
 * 如果是操作 1，那么该行只会有一个数字 1，代表有一个盘子被拿走清洗。
 *
 * 如果是操作 2，那么该行有两个数字，第一个数字 2 表示有未洗的盘子加入，第二个数字代表未洗的盘子编号。
 *
 * 输出描述
 * 输出共一行，为下一个该清洗的盘子编号。 如果没有下一个该清洗的盘子，那么请输出 “All the dishes have been washed.”
 * 输入示例
 * 5
 * 1001 1002 1003 1004 1005
 * 3
 * 1
 * 1
 * 2 1006
 * 输出示例
 * 1006
 */
public class Main19 {
    public static void main(String[] args) {
        getStackEle();
    }
    public static void getStackEle(){
        // 接收N组数据
        Scanner scanner = new Scanner(System.in);
        int putNum = scanner.nextInt();
        // 存放进stack内
        Stack<Integer> stack = new Stack<>();
        for (int i = 0; i < putNum; i++) {
            stack.push(scanner.nextInt());
        }
        // 输入操作指令数量
        int optNum = scanner.nextInt();
        // 判断操作指令
        for (int i = 0; i < optNum; i++) {
            int opt = scanner.nextInt();
            if (opt == 1){
                if (!stack.isEmpty()){
                    stack.pop();
                }else {
                    continue;
                }
            } else {
                stack.push(scanner.nextInt());
            }
        }
        // 判断stack是否为空，否则输出栈顶元素
        if (stack.isEmpty()){
            System.out.println("All the dishes have been washed.");
        }else {
            System.out.println(stack.peek());
        }
    }
}


